home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 10670 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  14.8 KB

  1. Path: cssun.mathcs.emory.edu!gatech!usceast!sridhar
  2. From: sridhar@cs.sc.edu (M. A. Sridhar)
  3. Newsgroups: comp.lang.c++,comp.os.os2.programmer.misc,comp.os.os2.programmer.oop,comp.os.os2.programmer.tools,comp.os.ms-windows.programmer.misc,comp.os.ms-windows.programmer.tools,comp.os.ms-windows.programmer.tools.owl,comp.os.ms-windows.programmer.tools.mfc,comp.windows.x,comp.windows.x.motif,comp.object,comp.os.ms-windows.programmer.tools.misc,comp.windows.misc
  4. Subject: ANNOUNCE: YACL version 1.5 available
  5. Date: 9 Mar 1996 01:58:55 GMT
  6. Organization: University of South Carolina - Columbia - Computer Science
  7. Distribution: inet
  8. Message-ID: <4hqokv$5t8@redwood.cs.sc.edu>
  9. NNTP-Posting-Host: oak.cs.sc.edu
  10. Keywords: Class library, multi-platform, core classes, GUI, MVC
  11. X-Newsreader: NN version 6.5.0 (NOV)
  12.  
  13.  
  14.  
  15. YACL version 1.5 is now available. The readme file is attached.
  16.  
  17. Sridhar
  18.  
  19. ------------------------------------------------------------------------------
  20.  
  21.         
  22.                            README.TXT for YACL
  23.                               Version 1.5
  24.                             March 8th, 1996
  25.  
  26.  
  27.  
  28. What's new in version 1.5:
  29.  
  30.     *  An interactive dialog editor written using the YACL classes,
  31.        so as to be entirely portable
  32.  
  33.     *  A bitmap viewer, contributed by Tony T. Ton (t.t.ton@massey.ac.nz)
  34.  
  35.     *  A few contributions by other YACL users:
  36.  
  37.            - Classes for supporting accelerator keys, by Ludovic Brenta, in
  38.              the directory contrib/accel.
  39.  
  40.            - Makefile changes for building YACL as shared libraries under
  41.              Solaris with GNU C++, by  Jeff Long (long@tiny.mitre.org). These
  42.              changes have been integrated into the YACL library makefiles;
  43.              look in the file control/gnuc/solaris.cfg and in
  44.              base/gnuc.mak, io/gnuc.mak and ui/gnuc.mak for details on
  45.              how to do this.
  46.              
  47.              
  48.     *  A few new classes:
  49.     
  50.            - A 3DLabel class, which is a Label that draws itself with a 3-d
  51.              effect. This looks good for status bars and the like. See
  52.              the demo programs uidemo/3dlabels and uidemo/scrolwin for
  53.              illustrations of its use.
  54.  
  55.            - A ScrollableWindow class representing a window that has scroll
  56.              bars attached at its right and bottom. See the deom
  57.              program uidemo/scrolwin for an example.
  58.  
  59.            - The DwgSurfaceInMemory now is tested to work correctly on all
  60.              platforms. The 3DLabel uses this class to speed up drawing.
  61.  
  62.            - MDI classes for supporting the Multiple Document Interface
  63.              (under Windows, Win32 and OS/2 only).
  64.  
  65.              
  66.     *  Support for more compilers:
  67.  
  68.            - GNU C++ 2.7.2 and EMX 0.9b (under OS/2) are now supported.
  69.  
  70.            - Native C++ compilers on SGI IRIX (Delta C++) Solaris 2.4
  71.              (Centerline C++) are supported; makefiles are included in
  72.              the distribution.
  73.  
  74.     *  Numerous bug fixes and enhancements to make YACL more
  75.        stable. For example:
  76.  
  77.            - Support for checkable menu items
  78.            - A static SetDefaultTextStyle method for UI_Label, to set
  79.              the default style for all Labels
  80.            - Support for default push buttons for dialogs
  81.            - Cross-hair and up-arrow cursors under OS/2
  82.            - Separate interface and implementation for CL_Basics, to
  83.              make it easier to instantiate pointer-based containers
  84.     
  85.  
  86.  
  87.  
  88.  
  89. About YACL:
  90.  
  91. This   is  YACL  (Yet   Another  Class Library).   It  is  a general-purpose
  92. programming library designed  with the idea  of identifying and implementing
  93. useful object abstractions that frequently occur in application development,
  94. so that development effort can be cut  down significantly.  The abstractions
  95. are   designed      to    be  application-domain-specific     rather    than
  96. platform-specific.  This yields two major benefits:
  97.  
  98.     - The  programming task becomes easier,  since the application developer
  99.       has high-level objects available.
  100.       
  101.     - Portability is a natural spinoff: any application that is coded to use
  102.       YACL's classes will be runnable on any of the supported platforms with
  103.       merely a recompilation.
  104.  
  105. YACL is part  of an ongoing project  to create a completely portable program
  106. development environment.
  107.  
  108.  
  109. YACL   consists  of three  kinds of   classes:  base classes  (consisting of
  110. primitive data types and  container classes), I/O  classes (for data storage
  111. and   retrieval)  and    GUI   classes    using   a  variation     of    the
  112. Model-View-Controller paradigm.   YACL's  base  and  I/O  classes  have been
  113. designed to support the most efficient algorithms possible, and to impose as
  114. few  storage constraints as possible.  All  classes (base, I/O and GUI) have
  115. been tested for memory and resource leaks.
  116.  
  117. CONCEPTUAL FEATURES:
  118.  
  119.     -  Template-based containers for code sharing
  120.     
  121.     -  Easy     inter-object    communication via   notification   (used
  122.        extensively in the GUI framework -- see below)
  123.  
  124.     -  Support for storage and retrieval of objects in binary form
  125.  
  126.     -  Support for very large sequences, sets and maps (with up to about
  127.        89 million  entries),  even under  MS Windows, thus circumventing
  128.        the 64K segment size limitation
  129.        
  130.  
  131. FUNCTIONAL FEATURES:
  132.  
  133.     Base library:
  134.     
  135.        - primitive data  types: string, date, time of day,  byte array,
  136.          byte string
  137.  
  138.        - container   classes  (template-based):  sequence   (in lieu of
  139.          lists), set, bitset, map, tree; as  noted above, the sequence,
  140.          set  and  map can have size up to about 89 million, even under
  141.          MS Windows' segmented architecture
  142.  
  143.        - utility classes: string splitter, tree walker
  144.  
  145.        - memory leak checker class, and  support for checking for leaks
  146.          and memory corruption errors
  147.        
  148.     File I/O library:
  149.     
  150.        - SlottedFile for managing files with fixed-length records (well
  151.          suited  for tables in relational  databases); manages upto 800
  152.          million records with at most five I/O operations per record
  153.          
  154.        - ByteStringStore for    managing  files  with   variable-length
  155.          records (whose lengths can  even grow and  shrink dynamically)
  156.          --  suited, for example, for  maintaining secondary indices or
  157.          other "binary large object" data
  158.          
  159.  
  160.     B-trees:
  161.     
  162.        - In-memory  and disk-based B-trees  supported, both sharing the
  163.          same B-tree algorithm code
  164.          
  165.        - Can be used in conjunction with the above file I/O library for
  166.          B-trees with variable-length keys
  167.  
  168.     GUI library:
  169.     
  170.        - Portable  abstractions for  building graphic user  interfaces,
  171.          based on the model-view-controller paradigm
  172.  
  173.        - Leverages platform's native API. So GUI applications  have the
  174.          native look and feel.
  175.          
  176.        - GUI objects well integrated with base  library, to enhance the
  177.          overall power and reusability of classes
  178.          
  179.        - GUI   objects:  menus,  dialogs,  buttons,  listboxes,  button
  180.          groups, and the like
  181.  
  182.        - Graphic resource  objects:  cursors, fonts,  pens,  colors and
  183.          brushes
  184.  
  185.        - Graphic  objects: bitmaps, ellipses,  rectangles, arcs and pie
  186.          wedges, 3-d graphics with raised   and   recessed   lines  and
  187.          rectangles
  188.  
  189.        - Supports printing under OS/2, MS Windows and Windows NT
  190.        
  191.        - Provides  for easy  composition  of basic objects,  as well as
  192.          high reusability
  193.  
  194.        - Includes many demo programs
  195.        
  196.  
  197. CURRENT STATUS (As of March 8th,, 1996):
  198.  
  199. The YACL base classes  provide equivalent functionality under DOS, Microsoft
  200. Windows,  Microsoft Windows   NT, OS/2 versions   2.1 and  Warp  and several
  201. flavors of  Unix.   The GUI classes  provide  equivalent functionality under
  202. four platforms: MS Windows, Windows NT, OS/2 PM and Unix with X/Motif.  Here
  203. is a summary of the platforms  and compilers it has  been tested under. (The
  204. YACL package includes makefiles  for all the  platforms and compilers listed
  205. below.)
  206.  
  207.  
  208.      Platform                Compiler
  209.      ---------               --------
  210.      
  211.      MS Windows              Borland C++ 4.0 and later
  212.                              Watcom C++ 10.0a
  213.  
  214.      MS Windows NT           Borland C++ 4.0 and later
  215.                              Watcom C++ 10.0a
  216.                              Microsoft Visual C++ 2.1
  217.  
  218.      OS/2 2.1                Borland C++ 1.5
  219.      
  220.      OS/2 Warp               EMX (GNU) C++ 2.6.3 and later
  221.                              Borland C++ 1.5
  222.                              Watcom C++ 10.0a
  223.                              IBM Visual Age C++ 3.0
  224.  
  225.      Linux                   GNU C++ 2.6.3 and later
  226.      
  227.      SunOS 4.1               GNU C++ 2.6.3 and later
  228.      
  229.      Solaris 2.3             Centerline C++ version 4.0
  230.                              GNU C++ 2.6.3 and later
  231.  
  232.      SGI Irix 5.3            SGI Delta C++
  233.                              GNU C++ 2.6.3 and later
  234.                              
  235.      DEC Ultrix              GNU C++ 2.6.3
  236.      
  237.      NCR SysV                GNU C++ 2.6.3
  238.  
  239.      
  240. The  implementations do not  use any  compiler-specific features,  and so it
  241. should be easy to build the library using  other compilers. The base classes
  242. will not compile under versions of GNU C++ earlier than 2.6.1 due to bugs in
  243. the compiler. 
  244.  
  245. YACL cannot be compiled with any compiler that does not support templates.
  246.  
  247. Under  Microsoft Windows,  YACL's  classes have  been tested  for memory and
  248. resource leaks using Bounds Checker for Windows.
  249.  
  250.  
  251.  
  252.  
  253. AVAILABILITY:
  254.  
  255. YACL is available via:
  256.  
  257.      World-wide web:  http://www.cs.sc.edu/~sridhar/yacl.html
  258.      
  259.      Anonymous ftp:   From ftp.cs.sc.edu (129.252.131.11), in the
  260.                       directory  /pub/yacl. Log in as anonymous, with
  261.                       your e-mail address  as password.
  262.  
  263. There is also a YACL mailing list. To be included in  it, please send e-mail
  264. to yacl-list@cs.sc.edu with the  message "subscribe yacl-list address" where
  265. address is your e-mail address.
  266.  
  267. Please send your comments, suggestions and bug reports to  the author at the
  268. address below.
  269.  
  270.  
  271. HOW TO USE:
  272.  
  273. Look    in the    directory   doc   for   compiler-   and  platform-specific
  274. documentation. Also look    in the file    shiplist.txt  for the   names  of
  275. files that document the use of YACL with various compilers.
  276.  
  277.  
  278.  
  279. DOCUMENTATION:
  280.  
  281. A tutorial and  reference  manual for YACL,   titled "Building portable  C++
  282. applications  with  YACL," is now   available from Addison-Wesley Publishing
  283. Company (ISBN 0-201-83276-3).  This book  describes everything needed to use
  284. YACL effectively.   All comments, criticisms and  reports  of bugs  or other
  285. errors in both the software and the book will  be gratefully accepted by the
  286. author at the address below.
  287.  
  288. Note that  the book describes YACL version  1.3, which  was released in July
  289. 1995. Functionality added subsequently is not described in the book; see the
  290. files doc/changlog.txt and doc/news.txt for details.
  291.  
  292.  
  293.  
  294. COPYRIGHT:
  295.  
  296. This software is Copyright (C) M.  A.  Sridhar, 1996.  You are free to copy,
  297. modify and distribute this software  as you see  fit, and to  use it for any
  298. purpose, provided this copyright  notice  and the following  disclaimer  are
  299. included without modification in all copies and  modifications of the source
  300. code. (If  you do not distribute  this source code or modifications thereof,
  301. you need not include this copyright or disclaimer.)
  302.  
  303.  
  304. DISCLAIMER:
  305.  
  306. The author makes no warranties, either expressed or implied, with respect to
  307. this software, its quality, performance, merchantability, or fitness for any
  308. particular purpose.  This software  is distributed AS IS.   The user of this
  309. software  assumes all risks  as to its quality  and performance. In no event
  310. shall  the  author be  liable  for  any  direct,  indirect or  consequential
  311. damages, even if the author  has been advised  as to the possibility of such
  312. damages.
  313.  
  314.  
  315. AUTHOR:                       M. A. Sridhar
  316.  
  317.     Snail mail:                       E-mail: sridhar@cs.sc.edu
  318.     Department of Computer Science    WWW:    http://www.cs.sc.edu/~sridhar
  319.     University of South Carolina      Phone:  (803) 777-2427
  320.     Columbia, SC 29208                Fax:    (803) 777-3767 
  321.     USA                                
  322.  
  323.     
  324. CONTRIBUTORS:
  325.  
  326.     N. Bhowmik, currently  with Object Design Inc., coded the initial
  327.     version of the GUI classes of YACL.
  328.  
  329.     Ram Sampath implemented several aspects of Motif functionality.
  330.  
  331.     Holger Pfaff (holger.pfaff@class.de) provided several bug fixes and
  332.     enhancements under MS Windows and Motif.
  333.  
  334.     Tony T. Ton (t.t.ton@massey.ac.nz) helped out with bug fixes and
  335.     enhancements under OS/2.
  336.  
  337.     Tom Satter (tsatter@purecode.com) contributed the fixes and makefiles
  338.     for IBM Visual Age C++ 3.0 under OS/2.
  339.  
  340.     Rajesh Chandran (chandran@cs.sc.edu) showed how to make YACL
  341.     applications compatible with editres under X windows.
  342.  
  343.     Jody Hagins (gamecox@magicnet.net) contributed makefiles for Centerline
  344.     C++ under Sun Solaris.
  345.      
  346.  
  347. RELATED PROJECTS:
  348.  
  349.  
  350. Bitmap viewer: (Author: Tony Ton)
  351.  
  352.     The directory  apps/bmpview includes a  bitmap viewer for displaying
  353.     Windows bitmaps.
  354.  
  355. Dialog editor: (Author: M. A. Sridhar)
  356.  
  357.     Included  in the distribution,   in  the directory apps/dlged, is  a
  358.     simple  dialog editor that  outputs YACL ViewDescriptor arrays. This
  359.     array description is platform-independent.
  360.  
  361.  
  362. Conversion from Windows RC files:
  363.  
  364.     An awk script is available for translating MS Windows resource files
  365.     into a form  usable by YACL. Direct  support for dialogs loaded from
  366.     Windows resource  files is also  available under Windows and Windows
  367.     NT; this is, however, a non-portable feature.
  368.  
  369.  
  370. Macintosh port:
  371.  
  372.     Ken Crismon (kcrismon@sybase.com) is working on porting YACL to the
  373.     Macintosh environment.
  374.  
  375.         
  376. Other contributions:
  377.  
  378.     The directory contrib is the beginnings of contributed software by
  379.     various people. At present, it contains two directories:
  380.     
  381.         - contrib/accel contains   derived   classes  for supporting
  382.         accelerator      keys, contributed    by   Ludovic    Brenta
  383.         (brenta@gprhp.insa-lyon.fr).
  384.  
  385.         -   contrib/sharedlib    contains   makefiles   for building
  386.         shared-library versions of the YACL libraries under Solaris,
  387.         contributed by Jeff Long (long@tiny.mitre.com). These changes
  388.         have been folded into the default GNU C++ makefiles.
  389.  
  390.  
  391. -------------------------- END OF README.TXT -----------------------------
  392.  
  393. -- 
  394. M. A. Sridhar                  | sridhar@usceast.cs.sc.edu (Internet)
  395. Department of Computer Science | http://www.cs.sc.edu/~sridhar/
  396. University of South Carolina   | (803) 777-3767 (Fax)
  397. Columbia, SC 29208             | (803) 777-2427 (Ma Bell)
  398. --
  399. M. A. Sridhar                  | sridhar@usceast.cs.sc.edu (Internet)
  400. Department of Computer Science | http://www.cs.sc.edu/~sridhar/
  401. University of South Carolina   | (803) 777-3767 (Fax)
  402. Columbia, SC 29208             | (803) 777-2427 (Ma Bell)
  403.